The present invention relates generally to solid state drives (“SSD's) for computers, and more particularly, to optimizing solid-state drives for improved device performance in pc's, notebooks, net books, and even servers.
Since personal computers first came on the scene, users discovered that their data (and files) often got stored in widely diverse regions or clusters on the associated hard-disk drives. The more reading, writing, and deleting of data that took place, the slower the computing speeds became. The reason, of course, was that the spinning read/write heads had to access data from many different regions or tracks of the disk, and a loss of system performance was inevitable. Whereas if the data files were stored in a contiguous region of the disk, writing or retrieving of data took place much more quickly. Eventually manufacturers began installing defragmentation software utilities to repack and store the data in compact contiguous regions in generally the same physical location or tracks on the disk. Other file storage optimization techniques were used to reduce files from being fragmented. Defragging (as it was called) returned the system performance to nearly the speed and efficiency that had originally been expected. And being part of the system utilities, it became a frequently used tool to clean up the stored files. Usually this was done at night or during periods when the system was inactive, since defragging required significant system resources.
With the popularity of net books and small laptop computers, SSDs have become a very popular drive replacing the spinning hard-disk drive albeit at this time much more expensive. And with nothing spinning or with no heads scanning media, the access times should be the same whether the data is stored in one compact location or spread through numerous physical blocks. Therefore, defragmentation was initially though to be a thing of the past. Many knowledgeable commentators even cautioned users against ever turning on a defragging utility for SSDs. Since solid-state hard drives (SSHD) or flash memory have limited write cycles, defragging was thought to be detrimental to the drives. After some number of write cycles, albeit very large, it was believed that the devices would fail. Indeed just having a windows-based machine turned on would cause unnecessary wear to the SSDs. The only consideration was thought to be wear leveling, i.e., evenly spreading the number of write cycles throughout the SSD flash memory. Consequently some SSD vendors installed wear-leveling algorithms to minimize this problem. But, the initial consensus was that defragmenting would do more harm than good.
However, much to the surprise of many, after a few months of frequent use, net book users found that their initial happiness with the speed of their machines turned to dismay when computing times turned into a crawl. Benchmarking of the drives confirmed that the initial read/write speeds were significantly reduced. Further frustration occurred when users discovered that defragging system utilities sometimes made their problems worse, since the SSD devices had there own controllers that ran remapping algorithms of the drives as the controllers saw fit. And management of the memory controllers was done internally.
While the following discussion focuses primarily on an economical long lasting solution to minimizing some of the problems associated with slowing SSD device performance, the invention has utility for many other types of applications and devices where SSD memory is employed.
Further limitations and disadvantages of conventional and traditional approaches will become apparent to one skilled in the art, through comparison of such devices with a representative embodiment of the present invention as set forth in the remainder of the present application with reference to the drawings.